home *** CD-ROM | disk | FTP | other *** search
/ Super CD / Super CD.iso / geomitri / rcd / cbflex.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1989-06-10  |  35.2 KB  |  993 lines

  1. 2       ' This programme is used to design  MULTI SPANS CONTIUOUS BEAMS
  2. 3       ' This programme uses Advanced Basic Language  (IBM - BASICA )
  3. 4       ' This programme is saved under the name     [ CBFLEX ]
  4. 5       ' Prepared by   AMJAD J. SHAIR       23/2/1986 -
  5. 6       ' Accessed only from CONTBEAM programme
  6. 80  PSX(MAX.)=0.75*(4400/(FY+6090))*FC/FY        '  Max. Ratio of Reinf'
  7. 90  PS(MIN.)=14/FY
  8. 2900  '-----------------------------------------Structural analysis calculations
  9. 2910  GOSUB 8500                          'Display Heading & Material properties
  10. 2920  GOSUB 8800                          'Calculation of Distribution Factors
  11. 2930  GOSUB 9300       'To Calculate  Negative Moments using Moment Distribution
  12. 2940  GOSUB 7400                     'To Calculate  Reactions & Positive Moments
  13. 2945  GOSUB 8300             'To Calculate  Negative Moments at face of supports
  14. 2950                   '-------------- Display Data & Structural Analysis Output
  15. 2960  GOSUB 9700                        'To round up results
  16. 2970  GOSUB 8600                           'Display Heading
  17. 2980  ON N GOSUB 10000,10900                'Display Data & Srtuctural Analysis
  18. 2990  IF N>=3 THEN GOSUB 12000
  19. 3000  IF N=1 GOTO 3245
  20. 3010  COLOR 15,5
  21. 3020  INPUT "     ENTER THE PERCENTAGE (%) OF REDUCTION ON NEGATIVE MOMENT  (if required )                        Enter  Cr   for no reduction required                   ",RDC
  22. 3030  COLOR 15,1
  23. 3040  IF RDC<=0 THEN RDC=0 :GOTO 3240
  24. 3050  IF RDC<=15 GOTO 3110 ELSE RDC=0
  25. 3060  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  26. 3070  PRINT " it is not advisable to apply more than 15 % reduction for  M -ve "
  27. 3080  PRINT "                 ***     Press   SPACE BAR   to continue    ***  ";
  28. 3090  Y$=INKEY$ :IF Y$<>" " THEN 3090
  29. 3100  IF Y$=" " THEN COLOR ,1 :PRINT :GOTO 2950
  30. 3110  FOR I=1 TO N
  31. 3120  IF I=1 AND LL>0 GOTO 3140
  32. 3130  MNL(I)=MNL(I)*(1-RDC/100)
  33. 3140  IF I=N AND LR>0 GOTO 3160
  34. 3150  MNR(I)=MNR(I)*(1-RDC/100)
  35. 3160  NEXT
  36. 3165  GOSUB 7050                    ' Please wait signal
  37. 3170  GOSUB 7400                    ' To Calculate  Reactions & Positive Moments
  38. 3175  GOSUB 8300             'To Calculate  Negative Moments at face of supports
  39. 3180  GOSUB 9700                    ' Round up Structural Analysis Output
  40. 3190  GOSUB 8700                    ' Display Heading & Basic Data
  41. 3200  ON N GOSUB 10000,10900        ' Display Data & Srtuctural Analysis
  42. 3210  IF N>=3 THEN GOSUB 12000
  43. 3220  PRINT "    DO YOU WANT TO CHANGE THE PERCENTAGE OF REDUCTION   (Y/N) ?  ";
  44. 3225  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 3225
  45. 3230  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :RDC=0 :GOTO 2930
  46. 3235  IF Y$="N" OR Y$="n" THEN PRINT "  NO "
  47. 3240  PRINT
  48. 3245  GOSUB 8250
  49. 3250  PRINT "    Maximum Moment to design for;   Mu ="MU" t.m"
  50. 3300  '-----------------------------------------Design of Conc. Section & Reinf'
  51. 3310  PRINT :LOCATE ,3 :COLOR 0,7
  52. 3320  INPUT "    ENTER THE TOTAL  height  OF BEAM SECTION   h  (cm) = ",H
  53. 3330  COLOR 15,1
  54. 3340  IF H >0 GOTO 3390
  55. 3350  PRINT :LOCATE ,3 :COLOR ,4 :BEEP
  56. 3360  INPUT "Zero HEIGHT can't be used , Do you want to RE-ENTER ?  (Y/N)",Y$
  57. 3370  COLOR ,1 :PRINT
  58. 3380  IF Y$="Y" GOTO 3320 ELSE GOTO 5910
  59. 3390  IF H>30 THEN D=H-5 ELSE D=H-4
  60. 3400  PS=PSX(MAX.)      'For Min. Concrete Section , Max. Reinf'
  61. 3410  GOSUB 6100
  62. 3420  B1=B :KU1=KU :PS1=PS :AS1=AS :NB1=NB :DIA1=DIA :ASP1=ASP
  63. 3430  PS=PSX(MAX.)*2/3  'For Moderate Concrete Section And Reinf'
  64. 3440  GOSUB 6100
  65. 3450  B2=B :KU2=KU :PS2=PS :AS2=AS :NB2=NB :DIA2=DIA :ASP2=ASP
  66. 3460  PS=PS(MIN.)       'For Max. Concrete Section , Min. Reinf'
  67. 3470  GOSUB 6100
  68. 3480  B3=B :KU3=KU :PS3=PS :AS3=AS :NB3=NB :DIA3=DIA :ASP3=ASP
  69. 3490  PRINT
  70. 3500  PRINT " 1- Use max.Reinf' b="B1"cm  * Ku="KU1"*  As="AS1"cm2  *  REINF':"NB1;CHR$(237);DIA1 "mm"
  71. 3510  PRINT
  72. 3520  PRINT " 2- Use med.Reinf' b="B2"cm  * Ku="KU2"*  As="AS2"cm2  *  REINF':"NB2;CHR$(237);DIA2 "mm"
  73. 3530  PRINT
  74. 3540  PRINT " 3- Use min.Reinf' b="B3"cm  * Ku="KU3"*  As="AS3"cm2  *  REINF':"NB3;CHR$(237);DIA3 "mm"
  75. 3550  PRINT :LOCATE ,3 :COLOR 0,7
  76. 3560  INPUT "  ENTER ANY  width  FOR THE BEAM  WITHIN THE ABOVE LIMITS ,   b  (cm) = ",B
  77. 3570  COLOR 15,1
  78. 3580  IF B<=0 OR B<B1 GOTO 3550
  79. 3590  GOSUB 7050 :GOSUB 7560 :GOSUB 7690 :GOSUB 6800
  80. 3600  IF DFS$="Y" OR DFS$="y" THEN MU=-MNF(1) ELSE MU=MNL(1)
  81. 3605  IF MU<MP(1)/3.5 THEN MU=MP(1)/3.5
  82. 3610  GOSUB 6600
  83. 3615  ASN(1)=AS :NBN(1)=NB :DIAN(1)=DIA :ASPN(1)=ASP
  84. 3620  FOR I=1 TO N
  85. 3625  IF DFS$="Y" OR DFS$="y" THEN MU=-MNF(I+1) ELSE MU=-MNR(I)
  86. 3630  IF I=N AND MU<MP(N)/3.5 THEN MU=MP(N)/3.5
  87. 3640  GOSUB 6600
  88. 3650  ASN(I+1)=AS :NBN(I+1)=NB :DIAN(I+1)=DIA :ASPN(I+1)=ASP
  89. 3660  NEXT
  90. 3670  FOR I= 1 TO N
  91. 3680  MU=MP(I)
  92. 3690  IF MU<0.86*MHSS(I) THEN MU=0.86*MHSS(I)     'compare to half simply supported moment
  93. 3700  GOSUB 6600
  94. 3710  ASP(I)=AS :NBP(I)=NB :DIAP(I)=DIA :ASPP(I)=ASP
  95. 3720  NEXT
  96. 3800  '-------------------------------------------------- Display Reinf' Details
  97. 3810  GOSUB 9900
  98. 3820  ON N GOSUB 10600,11500
  99. 3830  IF N>= 3 THEN GOSUB 12700
  100. 3840  PRINT "   The reinforcement shown is for conc. sect.   b ="B" cm  *  h ="H" cm"
  101. 3850  PRINT "     Do you want to change the   SECTION  DIMENTIONS     (Y/N) ? ";
  102. 3855  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 3855
  103. 3860  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :GOTO 2900
  104. 3865  IF Y$="N" OR Y$="n" THEN PRINT "  NO "
  105. 3900  '---------------------------------------- Display & Modification of Reinf'
  106. 3910  GOSUB 9900
  107. 3920  ON N GOSUB 15200,15500
  108. 3930  IF N>=3 THEN GOSUB 16000
  109. 3940  PRINT "     DO YOU WANT TO MODIFY THE REINFORCEMENT         (Y/N) ?  ";
  110. 3945  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 3945
  111. 3950  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :GOTO 3960
  112. 3955  IF Y$="N" OR Y$="n" THEN PRINT "  NO " :GOTO 4210
  113. 3960  PRINT "  ENTER  <N> to modify Negative Reinf' or <P> to modify Positive Reinf'  ";
  114. 3970  NPR$=INKEY$ :IF NPR$<>"N" AND NPR$<>"n" AND NPR$<>"P" AND NPR$<>"p" GOTO 3970
  115. 3980  IF NPR$="P" OR NPR$="p" THEN PRINT " P" :GOTO 4100 ELSE PRINT " N"
  116. 3990  INPUT "  ENTER the Joint Number where to modify the Negative Reinf': ",JTN
  117. 3995  IF JTN<1 OR JTN>(N+1) GOTO 3990
  118. 4000  AS=ASN(JTN)
  119. 4010  PRINT "  ENTER <N> to choose the req. Number of Bars  or <D> to choose the Diameter ";
  120. 4015  CH$=INKEY$ :IF CH$<>"D" AND CH$<>"d" AND CH$<>"N" AND CH$<>"n" THEN 4015
  121. 4020  IF CH$="D" OR CH$="d" THEN PRINT " D" :GOTO 4060 ELSE PRINT " N"
  122. 4030  INPUT "  ENTER the required Number of Steel Bars to be used :  ",NB
  123. 4040  GOSUB 7200
  124. 4050  GOTO 4080
  125. 4060  INPUT "  ENTER the required Diameter of Steel Bars to be used :  ",DIA
  126. 4070  GOSUB 7300
  127. 4080  NBN(JTN)=NB :DIAN(JTN)=DIA :ASPN(JTN)=ASP
  128. 4090  GOTO 3900
  129. 4100  INPUT "  ENTER the Span Number where to modify the Positive Reinf': ",SPN
  130. 4105  IF SPN<1 OR SPN>N GOTO 4100
  131. 4110  AS=ASP(SPN)
  132. 4120  PRINT "  ENTER <N> to choose the req. Number of Bars  or <D> to choose the Diameter ";
  133. 4125  CH$=INKEY$ :IF CH$<>"D" AND CH$<>"d" AND CH$<>"N" AND CH$<>"n" GOTO 4125
  134. 4130  IF CH$="D" OR CH$="d" THEN PRINT " D" :GOTO 4170 ELSE PRINT " N"
  135. 4140  INPUT "  ENTER the required Number of Steel Bars to be used :  ",NB
  136. 4150  GOSUB 7200
  137. 4160  GOTO 4190
  138. 4170  INPUT "  ENTER the required Diameter of Steel Bars to be used :  ",DIA
  139. 4180  GOSUB 7300
  140. 4190  NBP(SPN)=NB :DIAP(SPN)=DIA :ASPP(SPN)=ASP
  141. 4200  GOTO 3900
  142. 4210  LOCATE 24
  143. 4215  PRINT "                 ***     Press   SPACE BAR   to continue    ***  ";
  144. 4220  Y$=INKEY$ :IF Y$<>" " THEN 4220
  145. 4225  PRINT :PRINT
  146. 4230  PRINT "       CHOOSE ONE OF THE FOLLOWING :" :PRINT
  147. 4235  PRINT "   1 - PROCEED WITH THIS BEAM AND DESIGN FOR SHEAR "
  148. 4240  PRINT
  149. 4245  PRINT "   2 - REDESIGN THIS BEAM FOR FLEXURE              "
  150. 4250  PRINT
  151. 4255  PRINT "   3 - END WORKING ON THIS BEAM                    "
  152. 4260  PRINT
  153. 4265  INPUT "       ENTER YOUR CHOICE NUMBER  ( 1 - 3 )         ",CNK
  154. 4270  IF CNK<1 OR CNK>3 GOTO 4265
  155. 4275  IF CNK=1 THEN CHAIN "CBSHEAR",,ALL
  156. 4280  IF CNK=3 GOTO 5100
  157. 4282  PRINT :PRINT
  158. 4284  PRINT "     DO YOU WHANT TO CHECK BEAM SPANS AND LOADING FIRST ?  (Y/N)";
  159. 4286  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 4286
  160. 4288  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :CHAIN "CONTBEAM",2400,ALL
  161. 4290  IF Y$="N" OR Y$="n" THEN PRINT "  NO "
  162. 4292  PRINT :PRINT
  163. 4294  PRINT "     DO YOU WHANT TO RE-ENTER WIDTHS OF COLUMN SUPPORTS ?  (Y/N)";
  164. 4296  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 4296
  165. 4298  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :CHAIN "CONTBEAM",2800,ALL
  166. 4300  IF Y$="N" OR Y$="n" THEN PRINT "  NO " :GOTO 2900
  167. 5100  '-----------------------------------------------------Print Data & Results
  168. 5110  PRINT :PRINT :PRINT
  169. 5120  PRINT "     DO YOU WHANT THIS BEAM DESIGN TO BE PRINTED    (Y/N) ?  ";
  170. 5130  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 5130
  171. 5140  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :CHAIN "CBPRINT",,ALL
  172. 5150  IF Y$="N" OR Y$="n" THEN PRINT "  NO " :PRINT :GOTO 5910
  173. 5160  PRINT
  174. 5900  '-------------------------------------------------------End of Beam Design
  175. 5910  PRINT "     DO YOU HAVE OTHER BEAMS TO DESIGN              (Y/N) ?  ";
  176. 5920  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 5920
  177. 5930  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :CHAIN "CONTBEAM",10
  178. 5940  IF Y$="N" OR Y$="n" THEN PRINT "  NO " :PRINT :PRINT "       [  YOU WILL BE SEND BACK TO THE  RCDESIGN  MAIN MENU   ]  " :CHAIN "RCDESIGN",2500
  179. 5990  END  '------------------------------------------------------End of Running
  180. 6000  '-------------------- **** SUBROUTINES **** ------------------------------
  181. 6010  '------SUBROUTINE To Find The Reinforcement for a known Section Dimensions
  182. 6020  WC=(1-SQR(1-2.36*MU*100000/(B*D^2*0.9*FC)))/1.18
  183. 6030  KU=0.9*FC*WC*(1-0.59*WC)
  184. 6040  ACD=(WC/0.85)*D       'depth of compression Whitny Block
  185. 6050  CCD=AC/0.85           'depth of nutral axis
  186. 6060  JUD=(1-0.59*WC)*D
  187. 6070  PS=WC*FC/FY              'steel ratio
  188. 6080  AS=PS*B*D                'area of steel reinf'
  189. 6090  RETURN
  190. 6100  '- SUBROUTINE To Find The Width of Beam and Reinf' for a given steel ratio
  191. 6110  WC=PS*FY/FC
  192. 6120  KU=CINT(0.9*FC*WC*(1-0.59*WC)*100)/100
  193. 6130  AC=WC/0.85
  194. 6140  CC=AC/0.85
  195. 6150  JU=1-0.59*WC
  196. 6160  B=CINT(MU*100000/(KU*D^2))
  197. 6170  AS=CINT(PS*B*D*100)/100
  198. 6180  NB=CINT(B/10)
  199. 6190  IF NB<2 THEN NB=2
  200. 6200  DIA=2+2*INT(SQR(4*100*AS*0.9495/(3.14159*NB))/2)
  201. 6210  IF DIA<10 THEN DIA=10
  202. 6220  IF DIA<24 GOTO 6250
  203. 6230  DIA=25
  204. 6240  NB=1+INT(AS/4.908)
  205. 6250  ASP=NB*3.14159*(DIA/10)^2/4
  206. 6260  ASP=(CINT(ASP*100))/100
  207. 6270  RETURN
  208. 6300  '-------- Subroutine to choose the suitable Reinf'for Max. Positive Moment
  209. 6310  PRINT
  210. 6320  FOR G=1 TO 3
  211. 6330  NB=INT(B/10-2+G)
  212. 6340  IF NB<2 THEN NB=2
  213. 6350  DIA=2+2*INT(SQR(4*100*AS*0.9495/(3.14159*NB))/2)
  214. 6360  IF DIA<10 THEN DIA=10
  215. 6370  IF DIA<24 GOTO 6400
  216. 6380  DIA=25
  217. 6390  NB=1+INT(AS/4.908)
  218. 6400  ASP=NB*3.14159*(DIA/10)^2/4
  219. 6410  PRINT "   "G" - "NB;CHR$(237);DIA"mm ,  As(provided) ="ASP" cm2"
  220. 6420  NEXT
  221. 6430  PRINT
  222. 6440  INPUT "    CHOOSE THE SUITABLE REINF' No. ",G
  223. 6450  IF G<1 OR G>3 GOTO 6430
  224. 6460  NB=INT(B/10-2+G)
  225. 6470  IF NB<2 THEN NB=2
  226. 6480  DIA=2+2*INT(SQR(4*100*AS*0.9495/(3.14159*NB))/2)
  227. 6490  IF DIA<10 THEN DIA=10
  228. 6500  IF DIA<24 GOTO 6530
  229. 6510  DIA=25
  230. 6520  NB=1+INT(AS/4.908)
  231. 6530  ASP=NB*3.14159*(DIA/10)^2/4
  232. 6540  ASP=(CINT(ASP*100))/100
  233. 6550  RETURN
  234. 6600  '---------------------------------- SUBROUTINE - To find the Reinforcement
  235. 6610  '                                           for a known Section Dimensions
  236. 6620  WC=(1-SQR(1-2.36*MU*100000/(B*D^2*0.9*FC)))/1.18
  237. 6630  KU=0.9*FC*WC*(1-0.59*WC)
  238. 6640  ACD=(WC/0.85)*D       'depth of compression Whitny Block
  239. 6650  CCD=AC/0.85           'depth of nutral axis
  240. 6660  JUD=(1-0.59*WC)*D
  241. 6670  PS=WC*FC/FY              'steel ratio
  242. 6680  AS=PS*B*D                'area of steel reinf'
  243. 6690  AS(MIN.)=PS(MIN.)*B*D
  244. 6700  IF AS<AS(MIN.) THEN AS=AS(MIN.)
  245. 6710  NB=CINT(B/10)
  246. 6720  IF NB<2 THEN NB=2
  247. 6730  DIA=2+2*INT(SQR(4*100*AS*0.9495/(3.14159*NB))/2)
  248. 6740  IF DIA<10 THEN DIA=10
  249. 6750  IF DIA>=24 THEN DIA=25
  250. 6760  AB=3.14159*DIA^2/400
  251. 6770  NB =1+INT(AS*0.95/AB)
  252. 6775  IF NB<2 THEN NB=2
  253. 6780  ASP=NB*3.14159*(DIA/10)^2/4
  254. 6790  RETURN
  255. 6800  '------------------ SUBROUTINE To find Beam Section and Reinf' Limitations
  256. 6810  PSX(MAX.)=0.75*(4400/(FY+6090))*FC/FY        '  Max. Ratio of Reinf'
  257. 6820  WC(MAX.)=PSX(MAX.)*FY/FC
  258. 6830  ASX(MAX.)=PSX(MAX.)*B*D
  259. 6840  KU(MAX.)=0.9*FC*WC(MAX.)*(1-0.59*WC(MAX.))
  260. 6850  ACD(MAX.)=WC(MAX.)*D/0.85               'Depth of comp. Whitny Block
  261. 6860  CCD(MAX.)= ACD(MAX.)/0.85                 'Depth of Nutral Axis
  262. 6870  JUD(MAX.)=(1-0.59*WC(MAX.))*D                'Liver Arm
  263. 6880  MU(MAX.)=KU(MAX.)*B*D^2/100000             'Max. Moment Capacity of Rib
  264. 6890  PS(MIN.)=14.05/FY
  265. 6900  AS(MIN.)=PS(MIN.)*B*D
  266. 6910  PSX(MAX.)=(CINT(PSX(MAX.)*10000))/10000
  267. 6920  WC(MAX.)=(CINT(WC(MAX.)*100))/100
  268. 6930  ASX(MAX.)=(CINT(ASX(MAX.)*100))/100
  269. 6940  KU(MAX.)=(CINT(KU(MAX.)*100))/100
  270. 6950  ACD(MAX.)=(CINT(ACD(MAX.)*100))/100
  271. 6960  CCD(MAX.)=(CINT(CCD(MAX.)*100))/100
  272. 6970  JUD(MAX.)=(CINT(JUD(MAX.)*100))/100
  273. 6980  MU(MAX.)=(CINT(MU(MAX.)*100))/100
  274. 6990  PS(MIN.)=(CINT(PS(MIN.)*10000))/10000
  275. 7000  AS(MIN.)=(CINT(AS(MIN.)*100))/100
  276. 7010  RETURN
  277. 7050  '----------------------------- SUBROUTINE asking to wait for end of signal
  278. 7055  COLOR 31,0 :LOCATE ,18
  279. 7060  PRINT "   ****    P L E A S E   W A I T    ****   "
  280. 7065  COLOR 15,1
  281. 7070  RETURN
  282. 7200  '---------------------------------------SUBROUTINE to find Bars Diameter
  283. 7210  DIA=2+2*INT(SQR(4*100*AS*0.9495/(3.14159*NB))/2)
  284. 7220  IF DIA<10 THEN DIA=10
  285. 7230  IF DIA<24 GOTO 7250
  286. 7240  DIA=25
  287. 7250  ASP=NB*3.14159*(DIA/10)^2/4
  288. 7260  RETURN
  289. 7300  '---------------------------------------SUBROUTINE to find Number of Bars
  290. 7310  AB=3.14159*DIA^2/400
  291. 7320  NB =1+INT(AS*0.9495/AB)
  292. 7330  IF NB<2 THEN NB=2
  293. 7340  ASP=NB*3.14159*(DIA/10)^2/4
  294. 7350  RETURN
  295. 7400  '-------------------- SUBROUTINE to calculate Reactions & Positive Moments
  296. 7410  FOR I= 1 TO N
  297. 7415  RL(I)=RLS(I)+(MNL(I)+MNR(I))/L(I)
  298. 7420  RR(I)=RRS(I)-(MNL(I)+MNR(I))/L(I)
  299. 7425  IF RL(I)>0 AND RR(I)>0 GOTO 7440
  300. 7430  IF RL(I)>0 THEN XL(I)=L(I) :MP(I)=MNR(I) :GOTO 7555
  301. 7435  IF RR(I)>0 THEN XL(I)=0 :MP(I)=MNL(I) :GOTO 7555
  302. 7440  IF Z(I)>0 OR Q(I)>0 GOTO 7510
  303. 7445  'case with uniform & cocentrated load
  304. 7450  XL(I)=RL(I)/W(I)
  305. 7455  MP(I)=RL(I)*XL(I)-W(I)*XL(I)^2/2-MNL(I)
  306. 7460  IF J(I)<=0 GOTO 7555
  307. 7465  J=1
  308. 7470  IF XL(I)<=X(I,J) GOTO 7490
  309. 7475  XL(I)=XL(I)-F(I,J)/W(I)
  310. 7480  IF XL(I)<=X(I,J) THEN XL(I)=X(I,J) :GOTO 7490
  311. 7485  IF J<J(I) THEN J=J+1 :GOTO 7470 ELSE J=J+1
  312. 7490  MP(I)=RL(I)*XL(I)-W(I)*XL(I)^2/2-MNL(I)
  313. 7495  FOR J=1 TO J-1
  314. 7500  MP(I)=MP(I)-F(I,J)*(XL(I)-X(I,J))
  315. 7505  NEXT :GOTO 7555
  316. 7510  'case with  UNIFORM BLOCK LOAD  and/or  TRIANGULAR LOAD
  317. 7515  XL=L(I)/2 :RL=RL(I) :MNL=MNL(I)
  318. 7520  GOSUB 7900
  319. 7525  GOSUB 8000
  320. 7530  IF V=0 THEN MP(I)=MP :XL(I)=XL :GOTO 7555
  321. 7535  IF V<0 GOTO 7550
  322. 7540  M1=MP :XL=XL+0.05 :GOSUB 8000
  323. 7545  IF MP>M1 GOTO 7540 ELSE XL(I)=XL-0.05 :MP(I)=M1 :GOTO 7555
  324. 7550  M1=MP :XL=XL-0.05 :GOSUB 8000
  325. 7552  IF MP>M1 GOTO 7550 ELSE XL(I)=XL+0.05 :MP(I)=M1
  326. 7555  NEXT I
  327. 7558  RETURN
  328. 7560  '------------------------- SUBROUTINE to find half simply supported moment
  329. 7562  FOR I= 1 TO N
  330. 7565  IF Z(I)>0 OR Q(I)>0 GOTO 7640
  331. 7568  'case with UNIFORMLY DISTRIBUTED LOAD AND CONCENTRATED LOADS
  332. 7570  XLSS(I)=RLS(I)/W(I)
  333. 7575  MHSS(I)=W(I)*L(I)^2/16
  334. 7580  IF J(I)<=0 GOTO 7685
  335. 7585  J=1
  336. 7590  IF XLSS(I)<=X(I,J) GOTO 7610
  337. 7595  XLSS(I)=XLSS(I)-F(I,J)/W(I)
  338. 7600  IF XLSS(I)<=X(I,J) THEN XLSS(I)=X(I,J) :GOTO 7610
  339. 7605  IF J<J(I) THEN J=J+1 :GOTO 7590 ELSE J=J+1
  340. 7610  MPSS(I)=RLS(I)*XLSS(I)-W(I)*XLSS(I)^2/2
  341. 7615  FOR J=1 TO J-1
  342. 7620  MPSS(I)=MPSS(I)-F(I,J)*(XLSS(I)-X(I,J))
  343. 7625  NEXT
  344. 7630  MHSS(I)=MPSS(I)/2 :GOTO 7685
  345. 7640  'case with  UNIFORM BLOCK LOAD  and/or  TRIANGULAR LOAD
  346. 7645  XL=L(I)/2 :RL=RLS(I) :MNL=0
  347. 7650  GOSUB 7900
  348. 7655  GOSUB 8000
  349. 7660  IF V=0 THEN MHSS(I)=MP/2 :GOTO 7685
  350. 7665  IF V<0 GOTO 7680
  351. 7670  M1=MP :XL=XL+0.05 :GOSUB 8000
  352. 7675  IF MP>M1 GOTO 7670 ELSE MHSS(I)=M1/2 :GOTO 7685
  353. 7680  M1=MP :XL=XL-0.05 :GOSUB 8000
  354. 7682  IF MP>M1 GOTO 7680 ELSE MHSS(I)=M1/2
  355. 7685  NEXT I
  356. 7688  RETURN
  357. 7690  '----------------------------------- SUBROUTINE to find the cutoffs points
  358. 7692  FOR I = 1 TO N
  359. 7695  'find cutoff point from left support
  360. 7698  IF MNL(I)<=0 AND MNR(I)>=0 THEN XCL(I)=0 :GOTO 7790
  361. 7700  IF MNL(I)>=0 AND MNR(I)<=0 AND MP(I)<=0 THEN XCL(I)=0 :GOTO 7790
  362. 7705  IF MNL(I)<=0 AND MNR(I)<=0 THEN XCL(I)=0 :GOTO 7790
  363. 7710  IF Z(I)>0 OR Q(I)>0 GOTO 7755
  364. 7715  AL=W(I)/2 :BL=RL(I) :CL=MNL(I)
  365. 7720  XCL(I)=(BL-SQR(BL^2-4*AL*CL))/(2*AL)
  366. 7725  IF J(I)<=0 GOTO 7790
  367. 7730  J=1
  368. 7735  IF XCL(I)<=X(I,J) GOTO 7790
  369. 7740  BL=BL-F(I,J) :CL=CL-F(I,J)*X(I,J)
  370. 7745  XCL(I)=(BL-SQR(BL^2-4*AL*CL))/(2*AL)
  371. 7750  IF J<J(I) THEN J=J+1 :GOTO 7735
  372. 7752  GOTO 7790
  373. 7755  'case of UNIFORM BLOCK LOAD & TRIANGULER LOAD
  374. 7760  XL=0 :RL=RL(I) :MNL=MNL(I) :M1=-MNL(I)
  375. 7765  IF XL<L(I)-0.05 THEN XL=XL+0.05 :GOSUB 8000 ELSE XCL(I)=0 :GOTO 7790
  376. 7770  IF MP<0 THEN M1=MP  :GOTO 7765
  377. 7775  IF MP=0 THEN XCL(I)=XL :GOTO 7790
  378. 7780  IF MP>0 THEN XCL(I)=XL-0.05*MP/(MP-M1)
  379. 7790  'find cutoff point from right support
  380. 7795  IF MNL(I)<=0 AND MNR(I)>=0 THEN XCR(I)=0 :GOTO 7890
  381. 7800  IF MNL(I)>=0 AND MNR(I)<=0 AND MP(I)<=0 THEN XCR(I)=0 :GOTO 7890
  382. 7805  IF MNL(I)>=0 AND MNR(I)>=0 THEN XCR(I)=0 :GOTO 7890
  383. 7810  IF Z(I)>0 OR Q(I)>0 GOTO 7855
  384. 7815  AR=W(I)/2 :BR=RR(I) :CR=-MNR(I)
  385. 7820  XCR(I)=(BR-SQR(BR^2-4*AR*CR))/(2*AR)
  386. 7825  IF J(I)<=0 GOTO 7890
  387. 7830  J=J(I)
  388. 7835  IF XCR(I)<=(L(I)-X(I,J)) GOTO 7890
  389. 7840  BR=BR-F(I,J) :CR=CR+F(I,J)*X(I,J)-F(I,J)*L(I)
  390. 7845  XCR(I)=(BR-SQR(BR^2-4*AR*CR))/(2*AR)
  391. 7850  IF J>1 THEN J=J-1 :GOTO 7835
  392. 7852  GOTO 7890
  393. 7855  'case of UNIFORM BLOCK LOAD & TRIANGULER LOAD
  394. 7860  XL=L(I) :RL=RL(I) :MNL=MNL(I) :M1=MNR(I)
  395. 7865  IF XL>0.05 THEN XL=XL-0.05 :GOSUB 8000 ELSE XCR(I)=0 :GOTO 7890
  396. 7870  IF MP<0 THEN M1=MP  :GOTO 7865
  397. 7875  IF MP=0 THEN XCR(I)=L(I)-XL :GOTO 7890
  398. 7880  IF MP>0 THEN XCR(I)=L(I)-XL-0.05*MP/(MP-M1)
  399. 7890  NEXT I
  400. 7895  RETURN
  401. 7900  '----------------------- SUBROUTINE TO FIND SHEAR FORCE AT A CERTAIN POINT
  402. 7910  V=RL-W(I)*XL
  403. 7915  IF J(I)<=0 GOTO 7935
  404. 7920  FOR J=1 TO J(I)
  405. 7925  IF XL>X(I,J) THEN V=V-F(I,J)
  406. 7930  NEXT J
  407. 7935  IF Z(I)<=0 GOTO 7965
  408. 7940  FOR Z=1 TO Z(I)
  409. 7945  IF XL<=A3(I,Z) GOTO 7960
  410. 7950  IF XL<(A3(I,Z)+B3(I,Z)) THEN D3=XL-A3(I,Z) ELSE D3=B3(I,Z)
  411. 7955  V=V-D3*W3(I,Z)
  412. 7960  NEXT
  413. 7965  IF Q(I)<=0 GOTO 7998
  414. 7970  FOR Q=1 TO Q(I)
  415. 7975  IF XL<=A5(I,Q) GOTO 7995
  416. 7980  IF C5(I,Q)=A5(I,Q) GOTO 7990
  417. 7985  IF XL<C5(I,Q) THEN V=V-(W5(I,Q)/(C5(I,Q)-A5(I,Q)))*(XL-A5(I,Q))^2/2 :GOTO 7995
  418. 7988  IF C5(I,Q)=(A5(I,Q)+B5(I,Q)) GOTO 7992
  419. 7990  IF XL<(A5(I,Q)+B5(I,Q)) THEN V=V-W5(I,Q)*B5(I,Q)/2+(W5(I,Q)/(A5(I,Q)+B5(I,Q)-C5(I,Q)))*(A5(I,Q)+B5(I,Q)-XL)^2/2 :GOTO 7995
  420. 7992  IF XL>= (A5(I,Q)+B5(I,Q)) THEN V=V-W5(I,Q)*B5(I,Q)/2
  421. 7995  NEXT
  422. 7998  RETURN
  423. 8000  '----------------------- SUBROUTINE TO FIND THE MOMENT  AT A CERTAIN POINT
  424. 8010  MP=RL*XL-W(I)*XL^2/2-MNL
  425. 8020  IF J(I)<=0 GOTO 8060
  426. 8030  FOR J=1 TO J(I)
  427. 8040  IF XL>X(I,J) THEN MP=MP-F(I,J)*(XL-X(I,J))
  428. 8050  NEXT
  429. 8060  IF Z(I)<=0 GOTO 8110
  430. 8070  FOR Z=1 TO Z(I)
  431. 8080  IF XL<=A3(I,Z) GOTO 8100
  432. 8090  IF XL<=(A3(I,Z)+B3(I,Z)) THEN MP=MP-W3(I,Z)*(XL-A3(I,Z))^2/2 ELSE MP=MP-W3(I,Z)*B3(I,Z)*(XL-A3(I,Z)-B3(I,Z)/2)
  433. 8100  NEXT
  434. 8110  IF Q(I)<=0 GOTO 8200
  435. 8120  FOR Q= 1 TO Q(I)
  436. 8130  IF XL<=A5(I,Q) GOTO 8180
  437. 8140  IF C5(I,Q)=A5(I,Q) GOTO 8160
  438. 8150  IF XL<=C5(I,Q) THEN MP=MP-(W5(I,Q)/(C5(I,Q)-A5(I,Q)))*(XL-A5(I,Q))^3/6 :GOTO 8180
  439. 8155  IF C5(I,Q)=(A5(I,Q)+B5(I,Q)) GOTO 8170
  440. 8160  IF XL<=(A5(I,Q)+B5(I,Q)) THEN WR5=W5(I,Q)*(A5(I,Q)+B5(I,Q)-XL)/(A5(I,Q)+B5(I,Q)-C5(I,Q)) :MP=MP-(W5(I,Q)*(C5(I,Q)-A5(I,Q))/2)*(XL-A5(I,Q)-(C5(I,Q)-A5(I,Q))*2/3)-WR5*(XL-C5(I,Q))^2/2-(W5(I,Q)-WR5)*(XL-C5(I,Q))^2/3 :GOTO 8180
  441. 8170  IF XL>(A5(I,Q)+B5(I,Q)) THEN MP=MP-(W5(I,Q)*(C5(I,Q)-A5(I,Q))/2)*(XL-A5(I,Q)-(C5(I,Q)-A5(I,Q))*2/3)-(W5(I,Q)*(A5(I,Q)+B5(I,Q)-C5(I,Q))/2)*(XL-C5(I,Q)-(A5(I,Q)+B5(I,Q)-C5(I,Q))/3)
  442. 8180  NEXT
  443. 8200  RETURN
  444. 8250  '------------------------ SUBROUTINE TO FIND MAXIMUM MOMENT TO DESIGN FOR.
  445. 8252  MU=0
  446. 8254  IF DFS$="Y" OR DFS$="y" GOTO 8270
  447. 8256  FOR I=1 TO N
  448. 8258  IF MU<MNL(I) THEN MU=MNL(I)
  449. 8260  IF MU<-MNR(I) THEN MU=-MNR(I)
  450. 8262  IF MU<MP(I) THEN MU=MP(I)
  451. 8264  NEXT
  452. 8266  GOTO 8285
  453. 8270  FOR I=1 TO N+1
  454. 8272  IF MU<-MNF(I) THEN MU=-MNF(I)
  455. 8274  NEXT
  456. 8276  FOR I=1 TO N
  457. 8278  IF MU<MP(I) THEN MU=MP(I)
  458. 8280  NEXT
  459. 8285  RETURN
  460. 8300  '------------------ SUBROUTINE TO FIND NEGATIVE MOMENT AT FACE OF SUPPORT
  461. 8302  IF LL<=0 GOTO 8320
  462. 8305  LLF=LL-BS(1)/200
  463. 8308  MLCF=-WL*LLF^2/2
  464. 8310  IF IL<=0 GOTO 8320
  465. 8312  FOR I=1 TO IL
  466. 8315  MLCF=MLCF-FL(I)*(LLF-XFL(I))
  467. 8318  NEXT
  468. 8320  MNLF(1)=MNL(1)-RL(1)*BS(1)/300
  469. 8322  IF MNLF(1)>-MLCF THEN MNF(1)=-MNLF(1) ELSE MNF(1)=MLCF
  470. 8325  IF N=1 GOTO 8340
  471. 8328  FOR I=2 TO N
  472. 8330  MNRF(I-1)=MNR(I-1)+RR(I-1)*BS(I)/300
  473. 8332  MNLF(I)=MNL(I)-RL(I)*BS(I)/300
  474. 8335  IF MNLF(I)>-MNRF(I-1) THEN MNF(I)=-MNLF(I) ELSE MNF(I)=MNRF(I-1)
  475. 8338  NEXT
  476. 8340  IF LR<=0 GOTO 8358
  477. 8342  LRF=LR-BS(N)/200
  478. 8345  MRCF=WR*LRF^2/2
  479. 8348  IF IR<=0 GOTO 8358
  480. 8350  FOR I=1 TO IR
  481. 8352  MRCF=MRCF+FR(I)*(LRF-XFR(I))
  482. 8355  NEXT
  483. 8358  MNRF(N)=MNR(N)+RR(N)*BS(N+1)/300
  484. 8360  IF MRCF>-MNRF(N) THEN MNF(N+1)=-MRCF ELSE MNF(N+1)=MNRF(N)
  485. 8370  FOR I=1 TO N+1
  486. 8375  MNF(I)=CINT(MNF(I)*100)/100
  487. 8380  NEXT
  488. 8385  RETURN
  489. 8400  '------------------------------------------------- Display Invalid Entries
  490. 8410  PRINT :LOCATE ,6 :COLOR ,4 : BEEP
  491. 8420  PRINT "  ***  YOU WERE GIVEN TWO CHANCES TO ENTER , BUT YOU FAILED  ***  "TAB(72)"" :COLOR ,1
  492. 8430  PRINT :LOCATE ,6 :COLOR ,4
  493. 8440  PRINT "  ***  ENTER  Y  TO REDO THIS BEAM OR TO GO FOR OTHER BEAMS  ***  "TAB(72)"" :COLOR ,1
  494. 8450  PRINT
  495. 8460  GOTO 5900
  496. 8500   '------------------------------ SUBROUTINE : Display Heading & Basic Data
  497. 8510  CLS :LOCATE 2,3 :COLOR 15,5
  498. 8520  PRINT "  ****         CONTINUOUS BEAM DESIGN      *      B"NMB" -B"NMBL"       ****" TAB(78)""
  499. 8540  LOCATE ,3 :PRINT " MATERIAL PROPERTIES :   Conc. f'c ="FC"kg/cm2  *  Steel  fy ="FY"kg/cm2" TAB(78)""
  500. 8550  COLOR 15,1 :PRINT
  501. 8560  RETURN
  502. 8600   '------------------------------ SUBROUTINE : Display Heading & Basic Data
  503. 8610  CLS :LOCATE 2,3 :COLOR 15,5
  504. 8620  PRINT "  ****         CONTINUOUS BEAM DESIGN      *      B"NMB" -B"NMB+N-1"       ****" TAB(78)""
  505. 8630  COLOR 15,1 :PRINT
  506. 8640  PRINT "   FOR  EXACT NEGATIVE MOMENTS "
  507. 8650  PRINT
  508. 8660  RETURN
  509. 8700   '------------------------------ SUBROUTINE : Display Heading & Basic Data
  510. 8710  CLS :LOCATE 2,3 :COLOR 15,5
  511. 8720  PRINT "  ****         CONTINUOUS BEAM DESIGN      *      B"NMB" -B"NMB+N-1"       ****" TAB(78)""
  512. 8730  COLOR 15,1 :PRINT
  513. 8740  PRINT "   FOR   NEGATIVE MOMENTS REDUCED BY  "RDC"%"
  514. 8750  PRINT
  515. 8760  RETURN
  516. 8800  '--------------------------------- SUBROUTINE to find Distribution Factors
  517. 8805  IF LL>0 THEN PRINT "     LEFT  END SUPPORT IS HINGED BECAUSE THE BEAM HAS LEFT  END  CANTILEVER ":DFL(1)=1 :GOTO 8830
  518. 8810  PRINT "     IS THE FAR  LEFT END SUPPORT FIXED                 (Y/N) ? ";
  519. 8815  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 8815
  520. 8820  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :DFL(1)=0
  521. 8825  IF Y$="N" OR Y$="n" THEN PRINT "  NO " :DFL(1)=1
  522. 8830  PRINT
  523. 8835  IF LR>0 THEN PRINT "     RIGHT END SUPPORT IS HINGED BECAUSE THE BEAM HAS RIGHT END  CANTILEVER ":DFR(N)=1 :GOTO 8860
  524. 8840  PRINT "     IS THE FAR RIGHT END SUPPORT FIXED                 (Y/N) ? ";
  525. 8845  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 8845
  526. 8850  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :DFR(N)=0
  527. 8855  IF Y$="N" OR Y$="n" THEN PRINT "  NO " :DFR(N)=1
  528. 8860  PRINT : GOTO 8890
  529. 8870  PRINT "     DO YOU HAVE DIFFERENT CROSS SECTION FOR EACH SPAN  (Y/N) ? ";
  530. 8875  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 8875
  531. 8880  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :GOTO 8930
  532. 8885  IF Y$="N" OR Y$="n" THEN PRINT "  NO "
  533. 8890  FOR I=1 TO N
  534. 8900  INR(I)=1
  535. 8910  NEXT
  536. 8920  GOTO 9130
  537. 8930  PRINT
  538. 8940  PRINT "     CAN YOU ENTER THE CROSS SECT. DIMN. FOR EACH SPAN  (Y/N) ? ";
  539. 8945  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 8945
  540. 8950  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :GOTO 9040
  541. 8955  IF Y$="N" OR Y$="n" THEN PRINT "  NO "
  542. 8960  PRINT
  543. 8970  PRINT "   **  ENTER RELATIVE MOMENT OF INERTIA FOR EACH SPAN  (I) ** "
  544. 8980  FOR I= 1 TO N
  545. 8990  PRINT
  546. 9000  PRINT "   SPAN  B"NMB+I-1":  I (relative) =";
  547. 9010  INPUT INR(I)
  548. 9020  NEXT
  549. 9030  GOTO 9130
  550. 9040  PRINT
  551. 9050  PRINT "   **  ENTERING CROSS SECTION DIMENTIONS FOR EACH SPAN   ** "
  552. 9060  FOR I= 1 TO N
  553. 9070  PRINT
  554. 9080  PRINT "   SPAN  B"NMB+I-1
  555. 9090  INPUT "      ENTER WIDTH OF CROSS SECTION   b  (cm) ",BI(I)
  556. 9100  INPUT "      ENTER DEPTH OF CROSS SECTION   h  (cm) ",HI(I)
  557. 9110  INR(I)=BI(I)*HI(I)^3/12
  558. 9120  NEXT
  559. 9130  FOR I= 1 TO N-1
  560. 9140  DFR(I)=(INR(I)/L(I))/(INR(I)/L(I)+INR(I+1)/L(I+1))
  561. 9150  DFL(I+1)=1-DFR(I)
  562. 9160  NEXT
  563. 9170  PRINT :PRINT
  564. 9180  PRINT :LOCATE ,6 :COLOR 0,7
  565. 9190  PRINT "   DO YOU WANT TO RE-ENTER DATA FOR DISTRIB. FACTORS  (Y/N) ?   ";
  566. 9195  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 9195
  567. 9200  IF Y$="Y" OR Y$="y" THEN COLOR 15,1 :PRINT "  YES" :PRINT :GOTO 8800
  568. 9210  IF Y$="N" OR Y$="n" THEN COLOR 15,1 :PRINT "  NO "
  569. 9220  RETURN
  570. 9300  '------------------------------------ SUBROUTINE FOR MOMENT DISTRIBUTION
  571. 9310  MFR(0)=MLC
  572. 9320  MFL(N+1)=MRC
  573. 9330  FOR I= 1 TO N
  574. 9340  MBL(I,1)=-(MFR(I-1)+MFL(I))*DFL(I)
  575. 9350  MBR(I,1)=-(MFR(I)+MFL(I+1))*DFR(I)
  576. 9360  NEXT I
  577. 9370  PRINT :PRINT :PRINT
  578. 9375  COLOR 31,0 :LOCATE ,18
  579. 9380  PRINT "   ****    P L E A S E   W A I T    ****   "
  580. 9385  COLOR 15,1
  581. 9390  FOR C=2 TO 6   'moment distribution will be repeated in 6 circles
  582. 9400  FOR I= 1 TO N
  583. 9410  MCL(I,C)=MBR(I,C-1)/2
  584. 9420  MCR(I,C)=MBL(I,C-1)/2
  585. 9430  NEXT I
  586. 9440  FOR I= 1 TO N
  587. 9450  MBL(I,C)=-(MCR(I-1,C)+MCL(I,C))*DFL(I)
  588. 9460  MBR(I,C)=-(MCR(I,C)+MCL(I+1,C))*DFR(I)
  589. 9470  NEXT I
  590. 9480  NEXT C
  591. 9490  FOR I= 1 TO N
  592. 9500  MNL(I)=MFL(I)
  593. 9510  FOR C= 1 TO 6
  594. 9520  MNL(I)=MNL(I)+MCL(I,C)+MBL(I,C)
  595. 9530  NEXT C
  596. 9540  NEXT I
  597. 9550  FOR I= 1 TO N
  598. 9560  MNR(I)=MFR(I)
  599. 9570  FOR C= 1 TO 6
  600. 9580  MNR(I)=MNR(I)+MCR(I,C)+MBR(I,C)
  601. 9590  NEXT C
  602. 9600  NEXT I
  603. 9610  RETURN
  604. 9700  '------------------------ SUBROUTINE : Round up Structural Analysis Output
  605. 9710  FOR I= 1 TO N
  606. 9720  MLC=(CINT(MLC*100.04))/100
  607. 9730  RLC=(CINT(RLC*100.04))/100
  608. 9740  MRC=(CINT(MRC*100.04))/100
  609. 9750  RRC=(CINT(RRC*100.04))/100
  610. 9760  MNL(I)=(CINT(MNL(I)*100.04))/100
  611. 9770  MNR(I)=(CINT(MNR(I)*100.04))/100
  612. 9780  RL(I)=(CINT(RL(I)*100.04))/100
  613. 9790  RR(I)=(CINT(RR(I)*100.04))/100
  614. 9800  XL(I)=(CINT(XL(I)*100.04))/100
  615. 9810  MP(I)=(CINT(MP(I)*100.04))/100
  616. 9840  NEXT
  617. 9850  RETURN
  618. 9900  '------------------------------ SUBROUTINE : Round up Reinf' Design Output
  619. 9910  FOR I= 1 TO N+1
  620. 9912  XCL(I)=(CINT(XCL(I)*100.04))/100
  621. 9915  XCR(I)=(CINT(XCR(I)*100.04))/100
  622. 9920  AC(I)=(CINT(AC(I)*100))/100
  623. 9930  ASN(I)=(CINT(ASN(I)*100))/100
  624. 9940  ASP(I)=(CINT(ASP(I)*100))/100
  625. 9950  ASPN(I)=(CINT(ASPN(I)*100))/100
  626. 9960  ASPP(I)=(CINT(ASPP(I)*100))/100
  627. 9970  NEXT
  628. 9980  RETURN
  629. 10000  '-------------- SUBROUTINE : Display  Structural Analysis * ONE SPAN BEAM
  630. 10010  LT=LL+L(1)+LR
  631. 10020  XXL=CINT(LL/LT*38)
  632. 10030  XX1=CINT(L(1)/LT*38)
  633. 10040  XXR=CINT(LR/LT*38)
  634. 10050  XXT=XXL+XX1+XXR+2
  635. 10060  AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205)
  636. 10070  ZA=36+CINT(XXL/2)-3
  637. 10080  ZB=36+XXL
  638. 10090  ZC=ZB+CINT(XX1/2)-2
  639. 10100  ZD=ZB+XX1+1
  640. 10110  ZE=ZD+CINT(XXR/2)-2
  641. 10120  COLOR 0,7
  642. 10130  PRINT "   JOINT NUMBER  ................"TAB(ZB)"1" TAB(ZD)"2" TAB(80) ""
  643. 10140  PRINT "   " TAB(36) AC$ TAB(80) ""
  644. 10150  PRINT "   SPAN  NUMBER  ................";
  645. 10160  IF LL<=0 GOTO 10180
  646. 10170  PRINT TAB(ZA)"L/C";
  647. 10180  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZD) AB$;
  648. 10190  IF LR<=0 GOTO 10210
  649. 10200  PRINT TAB(ZE) "R/C";
  650. 10210  PRINT TAB(80)""
  651. 10220  PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
  652. 10230  PRINT "   SPAN  LENGTH     (m)..........";
  653. 10240  IF LL<=0 GOTO 10260
  654. 10250  PRINT TAB(ZA) LL;
  655. 10260  PRINT TAB(ZB)AB$ TAB(ZC) L(1) TAB(ZD) AB$;
  656. 10270  IF LR<=0 GOTO 10290
  657. 10280  PRINT TAB(ZE) LR;
  658. 10290  PRINT TAB(80)""
  659. 10300  PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
  660. 10310  PRINT "   SPAN  LOAD       (t/m)........";
  661. 10320  IF WL<=0 GOTO 10340
  662. 10330  PRINT TAB(ZA) WL;
  663. 10340  PRINT TAB(ZB)AB$ TAB(ZC) W(1) TAB(ZD) AB$;
  664. 10350  IF WR<=0 GOTO 10370
  665. 10360  PRINT TAB(ZE) WR;
  666. 10370  PRINT TAB(80)""
  667. 10380  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  668. 10390  PRINT "   NEGATIVE MOMENT (t.m)........"TAB(ZB-2) -MNL(1) TAB(ZD-2) MNR(1) TAB(80)""
  669. 10392  IF DFS$="N" OR DFS$="n" GOTO 10400
  670. 10394  PRINT "   Mu-ve AT FACE OF SUPPORT....."TAB(ZB-2) MNF(1) TAB(ZD-2) MNF(2) TAB(80)""
  671. 10400  PRINT "   " TAB(36) AA$ TAB(80) ""
  672. 10410  PRINT "   SUPP. REACTIONS (t)..........";
  673. 10420  IF LL<=0 GOTO 10440
  674. 10430  PRINT TAB(ZB-7) RLC;
  675. 10440  PRINT TAB(ZB) AB$ TAB(ZB+1) RL(1) TAB(ZD-7) RR(1) TAB(ZD) AB$;
  676. 10450  IF LR<=0 GOTO 10470
  677. 10460  PRINT TAB(ZD+1) RRC;
  678. 10470  PRINT TAB(80)""
  679. 10480  PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
  680. 10490  PRINT "   Lft Dstc. of M+max(m)........"TAB(ZB) AB$ TAB(ZC) XL(1) TAB(ZD) AB$ TAB(80)""
  681. 10500  PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
  682. 10510  PRINT "   POSITIVE MOMENT (t.m)........"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZD) AB$ TAB(80)""
  683. 10520  PRINT :COLOR 15,1
  684. 10530  RETURN
  685. 10600  '-------------------- SUBROUTINE : Display  Reinf' Details * ONE SPAN BEAM
  686. 10610  GOSUB 8500
  687. 10620  COLOR 0,7
  688. 10630  PRINT "   JOINT NUMBER  ................"TAB(ZB)"1" TAB(ZD)"2" TAB(80) ""
  689. 10640  PRINT "   " TAB(36) AC$ TAB(80) ""
  690. 10650  PRINT "   SPAN  NUMBER  ................";
  691. 10660  IF LL<=0 GOTO 10680
  692. 10670  PRINT TAB(ZA)"L/C";
  693. 10680  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZD) AB$;
  694. 10690  IF LR<=0 GOTO 10710
  695. 10700  PRINT TAB(ZE) "R/C";
  696. 10710  PRINT TAB(80)""
  697. 10720  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  698. 10730  PRINT "   NEGATIVE MOMENT (t.m)........"TAB(ZB-2) -MNL(1) TAB(ZD-2) MNR(1) TAB(80)""
  699. 10732  IF DFS$="N" OR DFS$="n" GOTO 10740
  700. 10734  PRINT "   Mu-ve AT FACE OF SUPPORT....."TAB(ZB-2) MNF(1) TAB(ZD-2) MNF(2) TAB(80)""
  701. 10740  PRINT "   " TAB(36) AA$ TAB(80) ""
  702. 10750  PRINT "   POSITIVE MOMENT (t.m)........"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZD) AB$ TAB(80)""
  703. 10760  PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
  704. 10770  PRINT "   CUT OFF POINTS  (m).........." TAB(ZB) AB$ TAB(ZB+1) XCL(1) TAB(ZD-6) XCR(1) TAB(ZD) AB$ TAB(80)""
  705. 10780  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  706. 10790  PRINT "   As (req) TOP    (cm2)........"TAB(ZB-2) ASN(1) TAB(ZD-2) ASN(2) TAB(80)""
  707. 10800  PRINT "   " TAB(36) AA$ TAB(80)""
  708. 10810  PRINT "   As (req) BOTTOM (cm2)........"TAB(ZB) AB$ TAB(ZC) ASP(1) TAB(ZD) AB$ TAB(80)""
  709. 10820  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  710. 10830  PRINT "   REINF' -    TOP ............."TAB(ZB-2) NBN(1);CHR$(237);DIAN(1)"mm" TAB(ZD-5) NBN(2);CHR$(237);DIAN(2)"mm" TAB(80)""
  711. 10840  PRINT "   " TAB(36) AA$ TAB(80) ""
  712. 10850  PRINT "   REINF' - BOTTOM ............."TAB(ZB) AB$ TAB(ZC) NBP(1);CHR$(237);DIAP(1)"mm" TAB(ZD) AB$ TAB(80)""
  713. 10860  COLOR 15,1 :PRINT
  714. 10870  RETURN
  715. 10900  '------------- SUBROUTINE : Display  Structural Analysis * TWO SPANS BEAM
  716. 10910  LT=LL+L(1)+L(2)+LR
  717. 10920  XXL=CINT(LL/LT*50)
  718. 10930  XX1=CINT(L(1)/LT*50)
  719. 10940  XX2=CINT(L(2)/LT*50)
  720. 10950  XXR=CINT(LR/LT*50)
  721. 10960  XXT=XXL+XX1+XX2+XXR+3
  722. 10970  AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205)
  723. 10980  ZA=23+CINT(XXL/2)-3
  724. 10990  ZB=23+XXL
  725. 11000  ZC=ZB+CINT(XX1/2)-2
  726. 11010  ZF=ZB+XX1+1
  727. 11020  ZG=ZF+CINT(XX2/2)-2
  728. 11030  ZD=ZF+XX2+1
  729. 11040  ZE=ZD+CINT(XXR/2)-2
  730. 11050  COLOR 0,7
  731. 11060  PRINT " JOINT NUMBER  ....."TAB(ZB)"1" TAB(ZF)"2" TAB(ZD)"3" TAB(80) ""
  732. 11070  PRINT "" TAB(23) AC$ TAB(80) ""
  733. 11080  PRINT " SPAN  NUMBER  .....";
  734. 11090  IF LL<=0 GOTO 11110
  735. 11100  PRINT TAB(ZA)"L/C";
  736. 11110  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZG) "SPAN 2" TAB(ZD)AB$;
  737. 11120  IF LR<=0 GOTO 11140
  738. 11130  PRINT TAB(ZE) "R/C";
  739. 11140  PRINT TAB(80)""
  740. 11150  PRINT TAB(ZB) AB$ TAB(ZF) AB$  TAB(ZD) AB$ TAB(80)""
  741. 11160  PRINT " SPAN  LENGTH   (m) ";
  742. 11170  IF LL<=0 GOTO 11190
  743. 11180  PRINT TAB(ZA) LL;
  744. 11190  PRINT TAB(ZB)AB$ TAB(ZC) L(1) TAB(ZF)AB$ TAB(ZG) L(2) TAB(ZD) AB$;
  745. 11200  IF LR<=0 GOTO 11220
  746. 11210  PRINT TAB(ZE) LR;
  747. 11220  PRINT TAB(80)""
  748. 11230  PRINT TAB(ZB) AB$ TAB(ZF) AB$  TAB(ZD) AB$ TAB(80)""
  749. 11240  PRINT " SPAN  LOAD   (t/m)";
  750. 11250  IF WL<=0 GOTO 11270
  751. 11260  PRINT TAB(ZA) WL;
  752. 11270  PRINT TAB(ZB)AB$ TAB(ZC) W(1) TAB(ZF)AB$ TAB(ZG) W(2) TAB(ZD) AB$;
  753. 11280  IF WR<=0 GOTO 11300
  754. 11290  PRINT TAB(ZE) WR;
  755. 11300  PRINT TAB(80)""
  756. 11310  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  757. 11320  PRINT " NEGT. MOMENT (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZD-2) MNR(2) TAB(80)""
  758. 11322  IF DFS$="N" OR DFS$="n" GOTO 11330
  759. 11324  PRINT " Mu- @ FACE OF SUPP"TAB(ZB-2) MNF(1) TAB(ZF-2) MNF(2) TAB(ZD-2) MNF(3) TAB(80)""
  760. 11330  PRINT "" TAB(23) AA$ TAB(80) ""
  761. 11340  PRINT " SUPP.REACTIONS (t)";
  762. 11350  IF LL<=0 GOTO 11370
  763. 11360  PRINT TAB(ZB-7) RLC;
  764. 11370  PRINT TAB(ZB) AB$ TAB(ZB+1) RL(1) TAB(ZF-7) RR(1) TAB(ZF)AB$ TAB(ZF+1) RL(2) TAB(ZD-7) RR(2) TAB(ZD) AB$;
  765. 11380  IF LR<=0 GOTO 11400
  766. 11390  PRINT TAB(ZD+1) RRC;
  767. 11400  PRINT TAB(80)""
  768. 11410  PRINT TAB(ZB) AB$ TAB(ZF) AB$  TAB(ZD) AB$ TAB(80)""
  769. 11420  PRINT " Lft Dst.of M+mx(m)"TAB(ZB) AB$ TAB(ZC) XL(1) TAB(ZF) AB$ TAB(ZG) XL(2) TAB(ZD) AB$ TAB(80)""
  770. 11430  PRINT TAB(ZB) AB$ TAB(ZF) AB$  TAB(ZD) AB$ TAB(80)""
  771. 11440  PRINT " POST. MOMENT (t.m)"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZF) AB$ TAB(ZG) MP(2) TAB(ZD) AB$ TAB(80)""
  772. 11450  PRINT :COLOR 15,1
  773. 11460  RETURN
  774. 11500  '------------------ SUBROUTINE : Display  Reinf' Details * TWO SPANS BEAM
  775. 11510  GOSUB 8500
  776. 11520  COLOR 0,7
  777. 11530  PRINT " JOINT NUMBER  ....."TAB(ZB)"1" TAB(ZF)"2" TAB(ZD)"3" TAB(80) ""
  778. 11540  PRINT "" TAB(23) AC$ TAB(80) ""
  779. 11550  PRINT " SPAN  NUMBER  .....";
  780. 11560  IF LL<=0 GOTO 11580
  781. 11570  PRINT TAB(ZA)"L/C";
  782. 11580  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZG) "SPAN 2" TAB(ZD)AB$;
  783. 11590  IF LR<=0 GOTO 11610
  784. 11600  PRINT TAB(ZE) "R/C";
  785. 11610  PRINT TAB(80)""
  786. 11620  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  787. 11630  PRINT " NEGT. MOMENT (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZD-2) MNR(2) TAB(80)""
  788. 11632  IF DFS$="N" OR DFS$="n" GOTO 11640
  789. 11634  PRINT " Mu- @ FACE OF SUPP"TAB(ZB-2) MNF(1) TAB(ZF-2) MNF(2) TAB(ZD-2) MNF(3) TAB(80)""
  790. 11640  PRINT "" TAB(23) AA$ TAB(80) ""
  791. 11650  PRINT " POST. MOMENT (t.m)"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZF) AB$ TAB(ZG) MP(2) TAB(ZD) AB$ TAB(80)""
  792. 11660  PRINT TAB(ZB) AB$ TAB(ZF) AB$  TAB(ZD) AB$ TAB(80)""
  793. 11670  PRINT " CUT OFF POINTS (m)" TAB(ZB) AB$ TAB(ZB+1) XCL(1) TAB(ZF-6) XCR(1) TAB(ZF)AB$ TAB(ZF+1) XCL(2) TAB(ZD-6) XCR(2) TAB(ZD) AB$ TAB(80)""
  794. 11680  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  795. 11690  PRINT " As (req) TOP (cm2)"TAB(ZB-2) ASN(1) TAB(ZF-2) ASN(2) TAB(ZD-2) ASN(3) TAB(80)""
  796. 11700  PRINT "" TAB(23) AA$ TAB(80)""
  797. 11710  PRINT " As (req)BOTT (cm2)"TAB(ZB) AB$ TAB(ZC) ASP(1) TAB(ZF) AB$ TAB(ZG) ASP(2) TAB(ZD) AB$ TAB(80)""
  798. 11720  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  799. 11730  PRINT " REINF' -    TOP   "TAB(ZB-2) NBN(1);CHR$(237);DIAN(1)"mm" TAB(ZF-2) NBN(2);CHR$(237);DIAN(2)"mm" TAB(ZD-5) NBN(3);CHR$(237);DIAN(3)"mm" TAB(80)""
  800. 11740  PRINT "" TAB(23) AA$ TAB(80) ""
  801. 11750  PRINT " REINF' - BOTTOM   "TAB(ZB) AB$ TAB(ZC) NBP(1);CHR$(237);DIAP(1)"mm" TAB(ZF) AB$ TAB(ZG) NBP(2);CHR$(237);DIAP(2)"mm" TAB(ZD) AB$ TAB(80)""
  802. 11760  COLOR 15,1 :PRINT
  803. 11770  RETURN
  804. 12000  '----------- SUBROUTINE : Display  Structural Analysis * 3 - 7 SPANS
  805. 12010  IF N= 3 THEN XX1= 18 :XX= 55
  806. 12020  IF N= 4 THEN XX1= 14 :XX= 57
  807. 12030  IF N= 5 THEN XX1= 11 :XX= 56
  808. 12040  IF N= 6 THEN XX1= 9 :XX= 55
  809. 12050  IF N= 7 THEN XX1= 8 :XX= 57
  810. 12060  IF LL<=0 AND LR<=0 THEN XXT=XX :ZA= 15
  811. 12070  IF LL<=0 AND LR<>0 THEN XXT=XX+7 :ZA= 15
  812. 12080  IF LL<>0 AND LR<=0 THEN XXT=XX+7 :ZA= 8
  813. 12090  IF LL<>0 AND LR<>0 THEN XXT=XX+14 :ZA= 8
  814. 12100  AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205)
  815. 12110  COLOR 0,7
  816. 12120  PRINT " JOINT ";
  817. 12130  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-2) I; :NEXT :PRINT TAB(80) ""
  818. 12140  PRINT "" TAB(ZA) AC$ TAB(80) ""
  819. 12150  PRINT " SPAN No";
  820. 12160  IF LL<=0 GOTO 12180
  821. 12170  PRINT TAB(11)"L/C";
  822. 12180  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) "SPAN"I; :NEXT :PRINT TAB(16+XX-2) AB$;
  823. 12190  IF LR<=0 GOTO 12210
  824. 12200  PRINT TAB(16+XX-1) "R/C";
  825. 12210  PRINT TAB(80)""
  826. 12220  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
  827. 12230  PRINT " L  (m)";
  828. 12240  IF LL<=0 GOTO 12260
  829. 12250  PRINT TAB(8) LL;
  830. 12260  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) L(I); :NEXT :PRINT TAB(16+XX-2) AB$;
  831. 12270  IF LR<=0 GOTO 12290
  832. 12280  PRINT TAB(16+XX-1) LR;
  833. 12290  PRINT TAB(80)""
  834. 12300  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
  835. 12310  PRINT " W t/m ";
  836. 12320  IF WL<=0 GOTO 12340
  837. 12330  PRINT TAB(8) WL;
  838. 12340  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) W(I); :NEXT :PRINT TAB(16+XX-2) AB$;
  839. 12350  IF WR<=0 GOTO 12370
  840. 12360  PRINT TAB(16+XX-1) WR;
  841. 12370  PRINT TAB(80)""
  842. 12380  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  843. 12390  PRINT " M- t.m" TAB(12) -MNL(1);
  844. 12400  FOR I= 1 TO N :PRINT TAB(16+I*XX1-4) MNR(I); :NEXT :PRINT TAB(80) ""
  845. 12402  IF DFS$="N" OR DFS$="n" GOTO 12410
  846. 12404  PRINT " M-@ FC" TAB(12) MNF(1);
  847. 12406  FOR I= 1 TO N :PRINT TAB(16+I*XX1-4) MNF(I+1); :NEXT :PRINT TAB(80) ""
  848. 12410  PRINT "" TAB(ZA) AA$ TAB(80) ""
  849. 12420  PRINT " R.Lft ";
  850. 12430  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+(I-1)*XX1) RL(I); :NEXT  :PRINT TAB(16+XX-2) AB$;
  851. 12440  IF LR<=0 GOTO 12460
  852. 12450  PRINT TAB(16+XX-1) RRC;
  853. 12460  PRINT TAB(80)""
  854. 12470  PRINT " R.Rgt ";
  855. 12480  IF LL<=0 GOTO 12500
  856. 12490  PRINT TAB(8) RLC;
  857. 12500  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-8) RR(I); :NEXT  :PRINT TAB(16+XX-2) AB$;
  858. 12510  PRINT TAB(80)""
  859. 12520  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
  860. 12530  PRINT " XL- m ";
  861. 12540  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) XL(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  862. 12550  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
  863. 12560  PRINT " M+ t.m";
  864. 12570  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) MP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  865. 12580  PRINT :COLOR 15,1
  866. 12590  RETURN
  867. 12700  '---------------- SUBROUTINE : Display  Reinf' Details * THREE SPANS BEAM
  868. 12710  GOSUB 8500
  869. 12720  COLOR 0,7
  870. 12730  PRINT " JOINT ";
  871. 12740  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-2) I; :NEXT :PRINT TAB(80) ""
  872. 12750  PRINT "" TAB(ZA) AC$ TAB(80) ""
  873. 12760  PRINT " SPAN No";
  874. 12770  IF LL<=0 GOTO 12790
  875. 12780  PRINT TAB(11)"L/C";
  876. 12790  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) "SPAN"I; :NEXT :PRINT TAB(16+XX-2) AB$;
  877. 12800  IF LR<=0 GOTO 12820
  878. 12810  PRINT TAB(16+XX-1) "R/C";
  879. 12820  PRINT TAB(80)""
  880. 12830  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  881. 12840  PRINT " M- t.m" TAB(12) -MNL(1);
  882. 12850  FOR I= 1 TO N :PRINT TAB(16+I*XX1-4) MNR(I); :NEXT :PRINT TAB(80) ""
  883. 12852  IF DFS$="N" OR DFS$="n" GOTO 12860
  884. 12854  PRINT " M-@ FC" TAB(12) MNF(1);
  885. 12856  FOR I= 1 TO N :PRINT TAB(16+I*XX1-4) MNF(I+1); :NEXT :PRINT TAB(80) ""
  886. 12860  PRINT "" TAB(ZA) AA$ TAB(80) ""
  887. 12870  PRINT " M+ t.m";
  888. 12880  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) MP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  889. 12890  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
  890. 12900  PRINT " CUT Pt.Lft";
  891. 12910  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+(I-1)*XX1) XCL(I); :NEXT  :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  892. 12920  PRINT " CUT Pt.Rgt";
  893. 12930  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-8) XCR(I); :NEXT  :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  894. 12940  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  895. 12950  PRINT " As- cm2";
  896. 12960  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-4) ASN(I); :NEXT :PRINT TAB(80) ""
  897. 12970  PRINT "" TAB(ZA) AA$ TAB(80)""
  898. 12980  PRINT " As+ cm2";
  899. 12990  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) ASP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  900. 13000  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  901. 13010  PRINT " RNF' TP";
  902. 13020  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-4) NBN(I) CHR$(237) DIAN(I); :NEXT :PRINT TAB(80) ""
  903. 13030  PRINT "" TAB(ZA) AA$ TAB(80) ""
  904. 13040  PRINT " RNF' BT ";
  905. 13050  FOR I= 1 TO N :PRINT TAB(16+I*XX1-INT(XX1/2)-4) NBP(I) CHR$(237) DIAP(I); :NEXT :PRINT TAB(80) ""
  906. 13060  COLOR 15,1 :PRINT
  907. 13070  RETURN
  908. 15200  '------------------- SUBROUTINE : Display  Reinf' Details * ONE SPAN BEAM
  909. 15210  GOSUB 8500
  910. 15220  COLOR 0,7
  911. 15230  PRINT "   JOINT NUMBER  ................"TAB(ZB)"1" TAB(ZD)"2" TAB(80) ""
  912. 15240  PRINT "   " TAB(36) AC$ TAB(80) ""
  913. 15250  PRINT "   SPAN  NUMBER  ................";
  914. 15260  IF LL<=0 GOTO 15280
  915. 15270  PRINT TAB(ZA)"L/C";
  916. 15280  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZD) AB$;
  917. 15290  IF LR<=0 GOTO 15310
  918. 15300  PRINT TAB(ZE) "R/C";
  919. 15310  PRINT TAB(80)""
  920. 15320  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  921. 15330  PRINT "   As (req) TOP    (cm2)........"TAB(ZB-2) ASN(1) TAB(ZD-2) ASN(2) TAB(80)""
  922. 15340  PRINT "   " TAB(36) AA$ TAB(80)""
  923. 15350  PRINT "   As (req) BOTTOM (cm2)........"TAB(ZB) AB$ TAB(ZC) ASP(1) TAB(ZD) AB$ TAB(80)""
  924. 15360  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  925. 15370  PRINT "   REINF' -    TOP ............."TAB(ZB-2) NBN(1);CHR$(237);DIAN(1)"mm" TAB(ZD-5) NBN(2);CHR$(237);DIAN(2)"mm" TAB(80)""
  926. 15380  PRINT "   " TAB(36) AA$ TAB(80) ""
  927. 15390  PRINT "   REINF' - BOTTOM ............."TAB(ZB) AB$ TAB(ZC) NBP(1);CHR$(237);DIAP(1)"mm" TAB(ZD) AB$ TAB(80)""
  928. 15400  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  929. 15410  PRINT "   As (prv) TOP    (cm2)........"TAB(ZB-2) ASPN(1) TAB(ZD-2) ASPN(2) TAB(80)""
  930. 15420  PRINT "   " TAB(36) AA$ TAB(80)""
  931. 15430  PRINT "   As (prv) BOTTOM (cm2)........"TAB(ZB) AB$ TAB(ZC) ASPP(1) TAB(ZD) AB$ TAB(80)""
  932. 15440  COLOR 15,1 :PRINT
  933. 15450  RETURN
  934. 15500  '------------------ SUBROUTINE : Display  Reinf' Details * TWO SPANS BEAM
  935. 15510  GOSUB 8500
  936. 15520  COLOR 0,7
  937. 15530  PRINT " JOINT NUMBER  ....."TAB(ZB)"1" TAB(ZF)"2" TAB(ZD)"3" TAB(80) ""
  938. 15540  PRINT "" TAB(23) AC$ TAB(80) ""
  939. 15550  PRINT " SPAN  NUMBER  .....";
  940. 15560  IF LL<=0 GOTO 15580
  941. 15570  PRINT TAB(ZA)"L/C";
  942. 15580  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZG) "SPAN 2" TAB(ZD)AB$;
  943. 15590  IF LR<=0 GOTO 15610
  944. 15600  PRINT TAB(ZE) "R/C";
  945. 15610  PRINT TAB(80)""
  946. 15620  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  947. 15630  PRINT " As (req) TOP (cm2)"TAB(ZB-2) ASN(1) TAB(ZF-2) ASN(2) TAB(ZD-2) ASN(3) TAB(80)""
  948. 15640  PRINT "" TAB(23) AA$ TAB(80)""
  949. 15650  PRINT " As (req)BOTT (cm2)"TAB(ZB) AB$ TAB(ZC) ASP(1) TAB(ZF) AB$ TAB(ZG) ASP(2) TAB(ZD) AB$ TAB(80)""
  950. 15660  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  951. 15670  PRINT " REINF' -    TOP   "TAB(ZB-2) NBN(1);CHR$(237);DIAN(1)"mm" TAB(ZF-2) NBN(2);CHR$(237);DIAN(2)"mm" TAB(ZD-5) NBN(3);CHR$(237);DIAN(3)"mm" TAB(80)""
  952. 15680  PRINT "" TAB(23) AA$ TAB(80) ""
  953. 15690  PRINT " REINF' - BOTTOM   "TAB(ZB) AB$ TAB(ZC) NBP(1);CHR$(237);DIAP(1)"mm" TAB(ZF) AB$ TAB(ZG) NBP(2);CHR$(237);DIAP(2)"mm" TAB(ZD) AB$ TAB(80)""
  954. 15700  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  955. 15710  PRINT " As (prv) TOP (cm2)"TAB(ZB-2) ASPN(1) TAB(ZF-2) ASPN(2) TAB(ZD-2) ASPN(3) TAB(80)""
  956. 15720  PRINT "" TAB(23) AA$ TAB(80)""
  957. 15730  PRINT " As (prv)BOTT (cm2)"TAB(ZB) AB$ TAB(ZC) ASPP(1) TAB(ZF) AB$ TAB(ZG) ASPP(2) TAB(ZD) AB$ TAB(80)""
  958. 15740  COLOR 15,1 :PRINT
  959. 15750  RETURN
  960. 16000  '---------------- SUBROUTINE : Display  Reinf' Details * THREE SPANS BEAM
  961. 16010  GOSUB 8500
  962. 16020  COLOR 0,7
  963. 16030  PRINT " JOINT ";
  964. 16040  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-2) I; :NEXT :PRINT TAB(80) ""
  965. 16050  PRINT "" TAB(ZA) AC$ TAB(80) ""
  966. 16060  PRINT " SPAN No";
  967. 16070  IF LL<=0 GOTO 16090
  968. 16080  PRINT TAB(11)"L/C";
  969. 16090  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) "SPAN"I; :NEXT :PRINT TAB(16+XX-2) AB$;
  970. 16100  IF LR<=0 GOTO 16120
  971. 16110  PRINT TAB(16+XX-1) "R/C";
  972. 16120  PRINT TAB(80)""
  973. 16130  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  974. 16140  PRINT " As- cm2";
  975. 16150  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-4) ASN(I); :NEXT :PRINT TAB(80) ""
  976. 16160  PRINT "" TAB(ZA) AA$ TAB(80)""
  977. 16170  PRINT " As+ cm2";
  978. 16180  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) ASP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  979. 16190  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  980. 16200  PRINT " RNF' TP";
  981. 16210  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-4) NBN(I) CHR$(237) DIAN(I); :NEXT :PRINT TAB(80) ""
  982. 16220  PRINT "" TAB(ZA) AA$ TAB(80) ""
  983. 16230  PRINT " RNF' BT ";
  984. 16240  FOR I= 1 TO N :PRINT  TAB(16+I*XX1-INT(XX1/2)-4) NBP(I) CHR$(237) DIAP(I); :NEXT :PRINT  TAB(80) ""
  985. 16250  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  986. 16260  PRINT " Asp- cm2";
  987. 16270  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-4) ASPN(I); :NEXT :PRINT TAB(80) ""
  988. 16280  PRINT "" TAB(ZA) AA$ TAB(80)""
  989. 16290  PRINT " Asp+ cm2";
  990. 16300  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) ASPP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  991. 16310  COLOR 15,1 :PRINT
  992. 16320  RETURN
  993.